Micron Document
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
| SparkN0de-git | SparkN0de |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------


Displaying Raw • Download


libs/able/examples/alert/main.py HEAD (8b8a5035) Text, 2.25 KB

T8b949e"""Turn the alert on Mi Band device
"""
Tff7b72from T7ee787kivyT7ee787.T7ee787app Tff7b72import Te6edf3App
Tff7b72from T7ee787kivyT7ee787.T7ee787uixT7ee787.T7ee787button Tff7b72import Te6edf3Button

Tff7b72from T7ee787able Tff7b72import Te6edf3BluetoothDispatcherTb4b4b4, Te6edf3GATT_SUCCESS
Tff7b72from T7ee787error_message Tff7b72import Te6edf3install_exception_handler


Tff7b72class T56d364BLETb4b4b4(Te6edf3BluetoothDispatcherTb4b4b4)Tb4b4b4:
Te6edf3device Tff7b72= Te6edf3alert_characteristic Tff7b72= Tff7b72None

Tff7b72def Td2a8ffstart_alertTb4b4b4(Tff7b72selfTb4b4b4, Tff7b72*Te6edf3argsTb4b4b4, Tff7b72*Tff7b72*Te6edf3kwargsTb4b4b4)Tb4b4b4:
Tff7b72if Tff7b72selfTff7b72.Td2a8ffalert_characteristicTb4b4b4: T8b949e# alert service is already discovered
Tff7b72selfTff7b72.Td2a8ffalertTb4b4b4(Tff7b72selfTff7b72.Td2a8ffalert_characteristicTb4b4b4)
Tff7b72elif Tff7b72selfTff7b72.Td2a8ffdeviceTb4b4b4: T8b949e# device is already founded during the scan
Tff7b72selfTff7b72.Td2a8ffconnect_gattTb4b4b4(Tff7b72selfTff7b72.Td2a8ffdeviceTb4b4b4) T8b949e# reconnect
Tff7b72elseTb4b4b4:
Tff7b72selfTff7b72.Td2a8ffstop_scanTb4b4b4(Tb4b4b4) T8b949e# stop previous scan
Tff7b72selfTff7b72.Td2a8ffstart_scanTb4b4b4(Tb4b4b4) T8b949e# start a scan for devices

Tff7b72def Td2a8ffon_deviceTb4b4b4(Tff7b72selfTb4b4b4, Te6edf3deviceTb4b4b4, Te6edf3rssiTb4b4b4, Te6edf3advertisementTb4b4b4)Tb4b4b4:
T8b949e# some device is found during the scan
Te6edf3name Tff7b72= Te6edf3deviceTff7b72.Td2a8ffgetNameTb4b4b4(Tb4b4b4)
Tff7b72if Te6edf3name Tff7b72and Te6edf3nameTff7b72.Td2a8ffstartswithTb4b4b4(Ta5d6ff'Ta5d6ffMITa5d6ff'Tb4b4b4)Tb4b4b4: T8b949e# is a Mi Band device
Tff7b72selfTff7b72.Td2a8ffdevice Tff7b72= Te6edf3device
Tff7b72selfTff7b72.Td2a8ffstop_scanTb4b4b4(Tb4b4b4)

Tff7b72def Td2a8ffon_scan_completedTb4b4b4(Tff7b72selfTb4b4b4)Tb4b4b4:
Tff7b72if Tff7b72selfTff7b72.Td2a8ffdeviceTb4b4b4:
Tff7b72selfTff7b72.Td2a8ffconnect_gattTb4b4b4(Tff7b72selfTff7b72.Td2a8ffdeviceTb4b4b4) T8b949e# connect to device

Tff7b72def Td2a8ffon_connection_state_changeTb4b4b4(Tff7b72selfTb4b4b4, Te6edf3statusTb4b4b4, Te6edf3stateTb4b4b4)Tb4b4b4:
Tff7b72if Te6edf3status Tff7b72== Te6edf3GATT_SUCCESS Tff7b72and Te6edf3stateTb4b4b4: T8b949e# connection established
Tff7b72selfTff7b72.Td2a8ffdiscover_servicesTb4b4b4(Tb4b4b4) T8b949e# discover what services a device offer
Tff7b72elseTb4b4b4: T8b949e# disconnection or error
Tff7b72selfTff7b72.Td2a8ffalert_characteristic Tff7b72= Tff7b72None
Tff7b72selfTff7b72.Td2a8ffclose_gattTb4b4b4(Tb4b4b4) T8b949e# close current connection

Tff7b72def Td2a8ffon_servicesTb4b4b4(Tff7b72selfTb4b4b4, Te6edf3statusTb4b4b4, Te6edf3servicesTb4b4b4)Tb4b4b4:
T8b949e# 0x2a06 is a standard code for "Alert Level" characteristic
T8b949e# https://www.bluetooth.com/specifications/gatt/viewer?attributeXmlFile=org.bluetooth.characteristic.alert_level.xml
Tff7b72selfTff7b72.Td2a8ffalert_characteristic Tff7b72= Te6edf3servicesTff7b72.Td2a8ffsearchTb4b4b4(Ta5d6ff'Ta5d6ff2a06Ta5d6ff'Tb4b4b4)
Tff7b72selfTff7b72.Td2a8ffalertTb4b4b4(Tff7b72selfTff7b72.Td2a8ffalert_characteristicTb4b4b4)

Tff7b72def Td2a8ffalertTb4b4b4(Tff7b72selfTb4b4b4, Te6edf3characteristicTb4b4b4)Tb4b4b4:
Tff7b72selfTff7b72.Td2a8ffwrite_characteristicTb4b4b4(Te6edf3characteristicTb4b4b4, Tb4b4b4[T79c0ff2Tb4b4b4]Tb4b4b4) T8b949e# 2 is for "High Alert"


Tff7b72class T56d364AlertAppTb4b4b4(Te6edf3AppTb4b4b4)Tb4b4b4:

Tff7b72def Td2a8ffbuildTb4b4b4(Tff7b72selfTb4b4b4)Tb4b4b4:
Tff7b72selfTff7b72.Td2a8ffble Tff7b72= Tff7b72None
Tff7b72return Te6edf3ButtonTb4b4b4(Te6edf3textTff7b72=Ta5d6ff'Ta5d6ffPress to Alert MiTa5d6ff'Tb4b4b4, Te6edf3on_pressTff7b72=Tff7b72selfTff7b72.Td2a8ffstart_alertTb4b4b4)

Tff7b72def Td2a8ffstart_alertTb4b4b4(Tff7b72selfTb4b4b4, Tff7b72*Te6edf3argsTb4b4b4, Tff7b72*Tff7b72*Te6edf3kwargsTb4b4b4)Tb4b4b4:
Tff7b72if Tff7b72not Tff7b72selfTff7b72.Td2a8ffbleTb4b4b4:
Tff7b72selfTff7b72.Td2a8ffble Tff7b72= Te6edf3BLETb4b4b4(Tb4b4b4)
Tff7b72selfTff7b72.Td2a8ffbleTff7b72.Td2a8ffstart_alertTb4b4b4(Tb4b4b4)


Tff7b72if Tff7b72__name__ Tff7b72== Ta5d6ff'Ta5d6ff__main__Ta5d6ff'Tb4b4b4:
Te6edf3install_exception_handlerTb4b4b4(Tb4b4b4)
Te6edf3AlertAppTb4b4b4(Tb4b4b4)Tff7b72.Td2a8ffrunTb4b4b4(Tb4b4b4)


──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────